package com.learning.spring.ioc.bean.jbased;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * ClassName: BeanJavaConfig
 * Description: 基于Java 类的配置
 * Date: 2018/8/7 10:36 【需求编号】
 *
 * @author Sam Sho
 * @version V1.0.0
 */
public class BeanJavaConfig {

    public static void main(String[] args) {
        test();
    }

    /**
     * 使用基于Java 类的配置启动Spring 容器
     */
    static void test() {

        // 也可以使用 @Import(AppInjectionConfig.class) 组装到一个配置类中
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class, AppInjectionConfig.class);
        System.out.println("初始化 AnnotationConfigApplicationContext 完成， 同时实例化 bean");

        ConfigBean configBean = context.getBean("configBean", ConfigBean.class);
        configBean.done();
        context.close();

        /*
         初始化 AnnotationConfigApplicationContext 完成， 同时实例化 bean
         调用了 ConfigBean.done 方法
         */
    }

    /**
     * Java Config 与 Xml 配置相互引用
     * 1、Xml 引用 Java Config：<context:component-scan base-package="com.learning.spring.ioc.bean.jbased" resource-pattern="AppConfig.class"/>
     * <p>
     * 2、Java Config 引用Xml：@ImportResource("classpath:bean-java-config.xml")
     */
    static void test2() {


    }


}






